﻿// Strategic game POJ - 1463.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>

/*
https://vjudge.net/problem/POJ-1463#author=GPT_zh

Bob喜欢玩电脑游戏，尤其是策略游戏，但有时他找不到解决方案，然后就会很伤心。现在他遇到了以下问题。他必须保卫一座中世纪城市，城市的道路构成一棵树。他必须在节点上放置最少数量的士兵，以便他们可以观察到所有的边。你能帮帮他吗？

你的程序应该找到Bob必须为给定树放置的最少士兵数量。

例如对于树：


解决方案是一个士兵（在节点1处）。
输入
输入以文本格式包含多个数据集。每个数据集表示一棵树，具有以下描述：

节点的数量
每个节点的描述格式如下
节点标识符：(道路数量) 节点标识符1 节点标识符2 ... 节点标识符道路数量
或
节点标识符：(0)

节点标识符是0到n-1之间的整数，对于n个节点（0 < n <= 1500）；每行输入中的道路数量不超过10。输入数据中每条边只出现一次。
输出
输出应该打印在标准输出上。对于每个给定的输入数据集，打印一个整数，表示结果（最少士兵数量）。以下是一个示例：

4
0:(1) 1
1:(2) 2 3
2:(0)
3:(0)
5
3:(3) 1 4 2
1:(1) 0
2:(0)
0:(0)
4:(0)

1
2
*/
int main()
{
    std::cout << "Hello World!\n";
}
 